<html>
<head><meta charset="utf-8"><title>rust-analyzer syntax trees deep dive · t-compiler/rust-analyzer · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/index.html">t-compiler/rust-analyzer</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html">rust-analyzer syntax trees deep dive</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="158990600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/158990600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#158990600">(Feb 20 2019 at 16:31)</a>:</h4>
<p>We plan to have a video call to dive into rust-analyzer representation of syntax trees and loseless error-tolerant parsing.</p>
<p>Here's the poll to select the time: <a href="https://doodle.com/poll/4vn2bsk75kz8dhmz" target="_blank" title="https://doodle.com/poll/4vn2bsk75kz8dhmz">https://doodle.com/poll/4vn2bsk75kz8dhmz</a>. </p>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> if you attend, you could be a zoom host and record the video as well.</p>



<a name="158993476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/158993476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#158993476">(Feb 20 2019 at 17:08)</a>:</h4>
<p>I still suggest reading README in <a href="https://github.com/apple/swift/tree/master/lib/Syntax" target="_blank" title="https://github.com/apple/swift/tree/master/lib/Syntax">https://github.com/apple/swift/tree/master/lib/Syntax</a> <strong>before</strong> the call: it has pretty pictures!</p>



<a name="159052269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159052269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159052269">(Feb 21 2019 at 09:23)</a>:</h4>
<p>Also, to avoid repeating the history, let's write down the agenda first, so that we can agree on it :) </p>
<p>The <strong>goal</strong> is to learn about the current implementation of syntax trees in rust-analyzer.  The assumption is that the current API is roughly what we would want in the end (b/c every one else with a cool IDE uses it), so it makes sense to validate/reject this assumption.</p>
<p>My rough plan is:</p>
<ul>
<li>walk through the external API: how to get the tree, how to traverse the tree, how to match the tree</li>
<li>show how data structure works internally (that's mostly<code>rowan</code> crate)</li>
<li>look at how parser works to produce the tree in presence of errors</li>
<li>study how we use syntax trees to produce IR and do name resolution &amp; type inference</li>
</ul>



<a name="159152573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159152573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159152573">(Feb 22 2019 at 12:26)</a>:</h4>
<p>The call will happen on Tuesday, 17:00--18:00 UTC. The event is on the calendar: <a href="https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com" target="_blank" title="https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com">https://calendar.google.com/calendar/embed?src=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com</a></p>



<a name="159152591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159152591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159152591">(Feb 22 2019 at 12:26)</a>:</h4>
<p>cc <span class="user-group-mention" data-user-group-id="1060">@WG-rls2.0</span></p>



<a name="159153606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159153606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159153606">(Feb 22 2019 at 12:42)</a>:</h4>
<p>do try to record the call (e.g. via zoom) if you can</p>



<a name="159184519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159184519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159184519">(Feb 22 2019 at 19:34)</a>:</h4>
<p>Want me to create a Zoom event?</p>



<a name="159184756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159184756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159184756">(Feb 22 2019 at 19:37)</a>:</h4>
<p>Done, added the info to the calendar event</p>



<a name="159437534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159437534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159437534">(Feb 26 2019 at 16:37)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="1060">@WG-rls2.0</span> remainder, the meeting is in about 30 minutes</p>



<a name="159439074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439074">(Feb 26 2019 at 16:59)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="159439102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439102">(Feb 26 2019 at 16:59)</a>:</h4>
<p>If anybody needs help connecting, let me know.</p>



<a name="159439178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439178">(Feb 26 2019 at 17:00)</a>:</h4>
<p>could you paste meeting id here?</p>



<a name="159439246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439246">(Feb 26 2019 at 17:00)</a>:</h4>
<p><a href="https://zoom.us/j/584448997" target="_blank" title="https://zoom.us/j/584448997">https://zoom.us/j/584448997</a></p>



<a name="159439323"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439323" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439323">(Feb 26 2019 at 17:01)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> are you going to join?</p>



<a name="159439387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439387">(Feb 26 2019 at 17:02)</a>:</h4>
<p>y, hashing out stuff with my camera</p>



<a name="159439481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159439481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159439481">(Feb 26 2019 at 17:03)</a>:</h4>
<p>please do start, I'll join shortly</p>



<a name="159443427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443427">(Feb 26 2019 at 17:59)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> very fun. I'm wondering if we can get <span class="user-mention" data-user-id="119009">@eddyb</span> to talk about their ideas for representing ASTs that were specifically oriented about macro expansion =)</p>



<a name="159443431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443431">(Feb 26 2019 at 17:59)</a>:</h4>
<p>Thanks, talking this through was really helpful!</p>



<a name="159443527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443527">(Feb 26 2019 at 18:00)</a>:</h4>
<p>The issue with a list of constraints: <a href="https://github.com/rust-analyzer/rust-analyzer/issues/862" target="_blank" title="https://github.com/rust-analyzer/rust-analyzer/issues/862">https://github.com/rust-analyzer/rust-analyzer/issues/862</a></p>



<a name="159443559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443559">(Feb 26 2019 at 18:01)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> also, I'll make a "RLS 2.0" playlist I think for this video -- it's currently doing post-processing etc so it'll be a bit before I can get it uploaded</p>



<a name="159443663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443663">(Feb 26 2019 at 18:02)</a>:</h4>
<p>cool! Could you add <a href="https://www.youtube.com/watch?v=ANKBNiSWyfc" target="_blank" title="https://www.youtube.com/watch?v=ANKBNiSWyfc">https://www.youtube.com/watch?v=ANKBNiSWyfc</a> to it as well?</p>
<div class="youtube-video message_inline_image"><a data-id="ANKBNiSWyfc" href="https://www.youtube.com/watch?v=ANKBNiSWyfc" target="_blank" title="https://www.youtube.com/watch?v=ANKBNiSWyfc"><img src="https://i.ytimg.com/vi/ANKBNiSWyfc/default.jpg"></a></div>



<a name="159443692"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443692" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443692">(Feb 26 2019 at 18:03)</a>:</h4>
<p>in theory yes</p>



<a name="159443699"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443699" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443699">(Feb 26 2019 at 18:03)</a>:</h4>
<p>if I can figure out how to navigate YouTube</p>



<a name="159443714"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159443714" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159443714">(Feb 26 2019 at 18:03)</a>:</h4>
<p>also, we can (and should!)  add links to the compiler-team directory...</p>



<a name="159620849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159620849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159620849">(Feb 28 2019 at 15:00)</a>:</h4>
<p>video posted <a href="https://youtu.be/DGAuLWdCCAI" target="_blank" title="https://youtu.be/DGAuLWdCCAI">https://youtu.be/DGAuLWdCCAI</a></p>



<a name="159620854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159620854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159620854">(Feb 28 2019 at 15:00)</a>:</h4>
<p>sorry for the delay!</p>



<a name="159641641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159641641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159641641">(Feb 28 2019 at 19:00)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> what's your font/color scheme in that video?</p>



<a name="159641712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159641712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159641712">(Feb 28 2019 at 19:01)</a>:</h4>
<p>i know that you're using the highlighting provided by the extension</p>



<a name="159641715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159641715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159641715">(Feb 28 2019 at 19:01)</a>:</h4>
<p>The hard-coded zenburn, yeah</p>



<a name="159641764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer%20syntax%20trees%20deep%20dive/near/159641764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/rust-analyzer.20syntax.20trees.20deep.20dive.html#159641764">(Feb 28 2019 at 19:02)</a>:</h4>
<p>The font is fira-code, with ligatures</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>